/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package com.svh.Controlador;

import com.svh.Entidad.Empleado;
import com.svh.Entidad.Permiso;
import com.svh.Entidad.Usuario;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

/**
 *
 * @author David
 */
@ManagedBean(name = "sesionControlador")
@SessionScoped
public class SesionControlador implements Serializable{
    
    private Usuario usuario;
    
    private Permiso permiso;
    
    private Empleado empleado;
    
    List<Permiso> modulos = new ArrayList<Permiso>();
    
    public SesionControlador() {
    }
    
    public void generarModulo(int id){
        for(Permiso per :usuario.getPerfil().getPermisos()){
            if(per.getModulo().getId() == id){
                this.permiso = per;
                break;
            }
        }
    }
    
    public void ensamblarMenu(){
        modulos = new ArrayList<Permiso>();
        modulos.addAll(usuario.getPerfil().getPermisos());
        Collections.sort(modulos,Permiso.compararPermisos);
    }
    
    /** GETTERS AND SETTERS **/
    
    public Usuario getUsuario() {
        return usuario;
    }

    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }

    public Permiso getPermiso() {
        return permiso;
    }

    public void setPermiso(Permiso permiso) {
        this.permiso = permiso;
    }

    public List<Permiso> getModulos() {
        return modulos;
    }

    public void setModulos(List<Permiso> modulos) {
        this.modulos = modulos;
    }

    public Empleado getEmpleado() {
        return empleado;
    }

    public void setEmpleado(Empleado empleado) {
        this.empleado = empleado;
    }
}
